package main

// import "fmt"

// type student struct {
// 	name string
// 	age  int
// }

// type person struct {
// 	name string
// 	city string
// 	age  int
// }

// func newPerson(name, city string, age int) *person {
// 	return &person{
// 		name: name,
// 		city: city,
// 		age:  age,
// 	}
// }

// func (p person) Dream() {
// 	fmt.Printf("%s 的梦想是学好go语言！\n", p.name)
// }

// func (p *person) SetAge(newAge int) {
// 	p.age = newAge
// }

// // SetAge2 设置p的年龄
// // 使用值接收者
// func (p person) SetAge2(newAge int) {
// 	p.age = newAge
// }

// func main() {
// 	m := make(map[string]*student)
// 	stus := []student{
// 		{name: "pprof.cn", age: 18},
// 		{name: "测试", age: 19},
// 		{name: "zhang", age: 20},
// 	}

// 	for _, stu := range stus {
// 		m[stu.name] = &stu
// 	}

// 	for k, v := range m {
// 		fmt.Println(k, "=>", v.name)
// 	}
// 	fmt.Println("------------使用结构体进行构造函数----------")
// 	p9 := newPerson("pptogq", "测试", 90)
// 	fmt.Printf("%#v\n", p9)

// 	// 方法与函数的区别是，函数不属于任何类型，方法属于特定的类型。
// 	fmt.Println("---------函数中的方法-----------")
// 	p9.Dream()

// 	// 值得接受着
// 	p9.SetAge(40)
// 	fmt.Println(p9.age)

// 	//

// }
